#ifndef PLANE_H_
#define PLANE_H_

#include "Vec3.h"

class Plane
{
public:
    Plane();
    Plane(const Vec3& norm, const float& distance);
    Plane(const Vec3& v1, const Vec3& v2, const Vec3& v3);
    Plane(const float& a, const float&  b, 
        const float& c, const float&  d);
    void CreateFromPoints(const Vec3& v1, const Vec3& v2, const Vec3& v3);
    float Distance(const Vec3& d) const;
    void Normalise();

    const Vec3& GetNormal() const;
    const float& GetOffset() const;

private:
    Vec3 m_norm;
    float m_d;
};

#endif